#Notes UI
標記為 #Notes UI · 5 篇文章
- NotesUIScheduler:用 LotusScript 驅動內嵌的 free/busy 排程格
一張自訂的會議室預約或會議表單上有內嵌排程控制項 —— 那個你放進與會者、看大家 free/busy 的忙碌時間格。NotesUIScheduler 就是你用程式驅動那個控制項的方式:從 UI 文件用名稱取得它、加或移除與會者、刷新排程資料、讀回使用者選的時段。一篇關於唯一那個前端排程類別的實測報告 —— 它的 GetScheduleData 刷新、以及你會掛的兩個事件。
2026.08.02 - Button、Field、Navigator:三個沒有屬性、沒有方法的 LotusScript 類別
打開 Button 的 LotusScript 說明,你以為會有屬性和方法 —— 一個都沒有。Field 一樣、Navigator 也一樣。三個都是故意做空的:它們只作為事件的進入點存在,也就是那個「告訴前端事件 handler 是誰觸發了它」的具名 Source 參數。一篇關於「你永遠不會對它呼叫任何東西」的三個類別的實測報告 —— 它們的事件是什麼(Click、Entering/Exiting/OnChange),以及為什麼真正的工作永遠是透過 NotesUIDocument。
2026.08.01 - NotesUIDatabase:攔下一個刪除的唯一地方
在 Notes client 裡,使用者可以從任何 view、用 Delete 鍵、用剪下、或拖進垃圾桶刪掉一份文件 —— 你沒辦法一條路一條路去守。NotesUIDatabase 是看得見全部路徑的單一 chokepoint:它的 QueryDocumentDelete 事件在任何東西被標記刪除之前,整個資料庫觸發一次。一篇前端資料庫類別的實測報告 —— 通往後端的 Database 橋、刪除/封存事件,以及你掛在「那個攔得住每條路的事件」上的軟刪除守衛。
2026.07.28 - NotesUIView:唯一知道使用者選了什麼的類別
view 上的動作按鈕理應對使用者反白的那幾列作用 —— 但後端的 NotesView 根本沒有「選取」這個概念。那道缺口,正是 NotesUIView 填的。一篇前端 view 類別的實測報告:它的 Documents 屬性(活的選取狀態)、通往後端 View 的橋、你用來攔截使用者的 QueryOpenDocument/QueryClose 事件,以及那條把這一切擋在 web 與 agent 之外的硬邊界。
2026.07.26 - NotesUIWorkspace × NotesUIDocument:LotusScript 的前端自動化
站上前面拆過的 NotesDatabase、NotesDocument 都是後端類別 — 但當你要在使用者按下按鈕的當下、讀他「螢幕上還沒存檔」的欄位值、跳一個對話框問他、或把當前文件切到編輯模式,靠的是另一半:NotesUIWorkspace 與 NotesUIDocument。本文拆解這組前端雙人組、最關鍵的「前端值 vs 後端 Document」觀念、FieldGetText/FieldSetText、Prompt 與 PickList 對話框,以及一個最容易忘的鐵則:UI class 不能在背景 / 排程 agent 裡跑。
2026.06.10